A computer network organized as a serial storage architecture (SSA) is a collection of nodes interconnected by a full duplex bi-directional serial connection. A standard for SSA is set forth by the American National Standards Institute (ANSI) Task Group X3T10.1 in documents SSA-S2P, SSA-TL1 and SSA-PH1. Additional references are available from the SSA Industry Association in documents SSA-IA/95PH and SSA-IA95SP.
In SSA, data is transferred between the nodes in data packets using a store and forward technique sometimes referred to as a bucket brigade. When the segments of an SSA network are organized in a loop, each node is coupled to two other nodes and data can travel throughout the network in a full circle. Alternatively, the nodes can be connected in a string, that is, in a line, that terminates without being connected to a subsequent node. However, in either topology, data communication throughout the network proceeds bi-directionally.
Each node has two ports, namely P1 and P2, and each port has an input and an output. Each port is further characterized by a state that can be defined as “on-line”, “wrapped” or “off-line”. In the on-line state the port is able to bi-directionally communicate with a next port located on an adjacent node. In the wrapped state, the port is coupled to itself by having its output coupled to its input. In the off-line state, the port is not able to communicate with another port, and it is not wrapped.
An SSA network is often referred to as a web. One web can be partitioned into several smaller webs, or separate webs can be combined to form one larger web. Each web will have at least one initiator, which is a processor for routing data and commands to the nodes in the web. In the case where a web includes more than one initiator, the initiators are ranked from a highest priority to a lowest priority. Based on this priority, the initiators will collectively designate one of the initiators as a master initiator.
A master initiator is responsible for handling error conditions that are reported to it by devices on its web. The master initiator is also responsible for setting the state of the ports on its web.
An initiator acquires a view of the topology of the network through a process known as “walking the web.” When an initiator walks the web, the initiator examines the ports of the devices in the web of which the initiator is a member, and stores the state of the ports in a topology table. The topology table describes the interconnection between nodes, i.e., the manner in which ports are linked together. It typically includes information such as a node identifier, and the state of each port at the node. Each initiator maintains its own topology table.
Each initiator also maintains its own configuration table. A configuration table includes the same information as a topology table, and further includes initiator registration information and port error handling parameters.
If a device on a web encounters a fault, the device generates an error message, known as an “Async Alert” in SSA parlance. If the Async Alert indicates a port communications problem, the master initiator of the web responds by performing an automatic error recovery process in which it walks the web to examine and possibly request a change of the state of the ports on the web. The master initiator may also issue a message known as a “Master Alert” to the non-master initiators. In response to a Master Alert, a non-master will walk the web and examine the ports on the web. However, a non-master initiator does not request a change of the state of a port.
A master initiator can issue a request for a given port to assume the wrapped state. Provided that the given port is operating normally, the given port will respond by wrapping itself.
Alternatively, a master initiator can issue a request for a given port to assume the on-line state. If the given port can establish communication with an adjacent port, then the given port assumes the on-line state. If the given port cannot establish communication with the adjacent port, then the given port assumes the off-line state. This failure to establish communication can occur when (a) there is no adjacent port, such as when the given port is at the end of a string, (b) the adjacent port is in the wrapped state, or (c) the communication link between the given port and the adjacent port has a problem. Note that the port may automatically transition from the on-line state to the off-line state depending on its ability to establish communication with the adjacent port.
When the network topology changes, initiator mastership can change, and a new master initiator will be responsible for the state of the ports. However, a first initiator cannot read a topology table from a second initiator. Consequently, in a case where the first initiator becomes a master for a web of which the first initiator has no knowledge, the first initiator has no opportunity to preserve the state of a port located in that web.
Note also that the process of walking the web and requesting a particular state for a port is handled exclusively by the initiators. There is no method or means for imposing or even suggesting a desired configuration for the network.
Accordingly, it is an object of the present invention to impose a desired configuration on a computer network notwithstanding the presence of an initiator that can examine and request the ports in the network to assume particular states.
It is another object of the present invention to impose the desired configuration in a case where the network includes multiple webs and multiple initiators.
It is yet another object of the present invention to maintain the desired configuration in a case where the topology of the network changes.